how to build custom signup behavior